<?php
namespace app\common\event;

class Menu
{
    public function afterInsert($menu)
    {
        $menu_arr = $menu->toArray();
        // 如果创建的是一个根类目
        if (!isset($menu_arr['parent_id'])) {
            // 将层级设为 0
            $menu_arr['level'] = 0;
            // 将 path 设为 -
            $menu_arr['path'] = '-';
        } else {
            // 将层级设为父类目的层级 + 1
            $menu_arr['level'] = $menu->parent->level +1 ;
            // 将 path 值设为父类目的 path 追加父类目 ID 以及最后跟上一个 - 分隔符
            $menu_arr['path'] = $menu->parent->path.$menu->parent_id.'-';
            //更新父级  is_directory 1 含有子目录
            db('menu')->where(['id'=>$menu->parent_id])->update(['is_directory'=>1]);
        }
        db('menu')->where(['id'=>$menu_arr['id']])->update($menu_arr);
    }

    public function afterUpdate($menu)
    {
        $menu_arr = $menu->toArray();
        // 如果创建的是一个根类目
        if (!isset($menu_arr['parent_id'])) {
            // 将层级设为 0
            $menuData['level'] = 0;
            // 将 path 设为 -
            $menuData['path'] = '-';
        } else {
            // 将层级设为父类目的层级 + 1
            $menuData['level'] = $menu->parent->level +1 ;
            // 将 path 值设为父类目的 path 追加父类目 ID 以及最后跟上一个 - 分隔符
            $menuData['path'] = $menu->parent->path.$menu->parent_id.'-';
            //更新父级  is_directory 1 含有子目录
            db('menu')->where(['id'=>$menu->id])->update(['is_directory'=>1]);
        }
        db('menu')->where(['id'=>$menu_arr['id']])->update($menuData);
    }
}